如果您已經熟悉數據泄露的概念,那么您可能也熟悉其后果。但是它背后的機制呢?更重要的是,你如何預防它?這是我們將在這篇博文中探討的兩個問題,以便您了解如何有效防止網站數據泄露。
為什么網站會泄露數據?
要回答這個問題,我們首先需要了解一般的現代網站是如何工作的。如果我們看一下最新的統計數據,我們會發現平均網站上運行的所有腳本中大約有 70% 來自第三方。這意味著只有 30% 的網站代碼是由公司內部編寫和維護的。如果我們仔細研究這些第一方代碼,我們會發現它通常由 JavaScript 框架和庫組成,例如 React 和 Angular,它們本身是由第三方開發和維護的。
這數百個第三方代碼導致了一個復雜的供應鏈,為公司創造了一個巨大的安全盲點,攻擊者可能利用這些盲點來泄露數據。但攻擊者究竟如何才能做到這一點?
第三方腳本的一個關鍵是它們與所有第一方代碼具有相同的功能。他們可以訪問任何類型的數據,篡改您現有的代碼,甚至篡改您的用戶與您網站的交互方式。因此,網絡供應鏈的問題。
網絡供應鏈和數據泄露
從代碼庫到聊天機器人等第三方服務,當您將所有這些外部代碼加起來時,您很快就會發現您幾乎看不到您網站上實際運行的代碼。
出現主要問題是因為網站不斷處理非常敏感的信息,例如信用卡詳細信息、社會安全號碼和私人健康信息。因此,當用戶在任何給定網站上輸入和提交該數據時,它總是會通過混亂的客戶端。如果公司不了解他們正在運行的代碼,他們就無法確定是否有任何第三方腳本試圖攔截和泄露敏感數據。
如今,攻擊者正在利用這個安全盲點并發起 Web 供應鏈攻擊。這些攻擊越來越流行,因為如果攻擊者設法更改第三方腳本,他們基本上可以將任意代碼注入網站并為所欲為。另外,該代碼將影響該網站上的所有用戶以及使用該腳本的所有其他網站。
Web 供應鏈攻擊也很流行,因為攻擊者不必直接針對主網站。他們可以追蹤其最薄弱的環節——頁面中使用的第三方供應商——并利用他們可能擁有更少的安全資源這一事實。
如何保護網絡供應鏈,防止數據泄露?
防止數據泄漏的第一步是了解客戶端實際發生的情況。因此,這意味著您需要實時監控每個單獨的腳本并了解其特定行為。這里的一個重要方面是能夠知道某個腳本是否以及何時發送數據、特定類型的數據以及數據發送到何處。沒有這些信息,您就無法知道某個網絡連接是否合法或是否有人企圖泄露您的用戶數據。
但可見性只是解決方案的一部分。一種預防數據泄漏的方法需要控制網站腳本的所有不同行為,并能夠默認限制它們。雖然使用內容安全策略等方法似乎可以解決這個問題,但實際上它們不足以有效解決數據泄露問題。其他方法,如 Web 應用程序防火墻甚至瀏覽器防御,也達不到要求。
為這個問題找到正確的解決方案需要一種深入的安全方法來提供可見性和控制。要獲得可見性,第一步是盤點您網站上運行的所有腳本以及它們正在執行的所有網絡連接。這樣可以清楚地了解您的客戶端是如何構建的,您面臨的 Web 供應鏈風險是什么,以及您的用戶數據是如何流經您的客戶端的。